drive_info_struct *drv;
xen_disk_t *xd = &xdi->disks[xdi->count];
- ctlr = 0; /* XXX SMH: only deal with 1 controller for now */
- /* Loop through each real device */
- for(i=0; i < NWD; i++) {
-
- drv = &(hba[ctlr]->drv[i]);
-
- if (!(drv->nr_blocks))
- continue;
-
- if ( xdi->count == xdi->max )
- BUG();
-
+ for(ctlr = 0; ctlr < MAX_CTLR; ctlr++) {
+
+ if(hba[ctlr] != NULL) {
+
+ /* Loop through each real device */
+ for(i=0; i < NWD; i++) {
+
+ drv = &(hba[ctlr]->drv[i]);
+
+ if (!(drv->nr_blocks))
+ continue;
+
+ if ( xdi->count == xdi->max )
+ BUG();
- hba[ctlr]->hd[i << NWD_SHIFT].nr_sects =
- hba[ctlr]->sizes[i << NWD_SHIFT] = drv->nr_blocks;
- /* We export 'raw' linux device numbers to domain 0. */
- xd->device = MKDEV(hba[ctlr]->major, i << 4);
- xd->info = XD_TYPE_DISK; /* XXX should check properly */
- xd->capacity = drv->nr_blocks; /* in terms of 512byte sectors */
- xd->domain = 0;
+ hba[ctlr]->hd[i << NWD_SHIFT].nr_sects =
+ hba[ctlr]->sizes[i << NWD_SHIFT] = drv->nr_blocks;
- xdi->count++;
- xd++;
+ /* We export 'raw' linux device numbers to domain 0. */
+ xd->device = MKDEV(hba[ctlr]->major, i << 4);
+ xd->info = XD_TYPE_DISK; /* XXX should check properly */
+ xd->capacity = drv->nr_blocks; /* number of 512 byte sectors */
+ xd->domain = 0;
+
+ xdi->count++;
+ xd++;
+ }
+
+ }
}
+ return;
}
/*